home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
turbotut.arc
/
DYNREC.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1989-06-30
|
2KB
|
74 lines
PROGRAM a_dynamic_storage_record;
CONST number_of_friends = 50;
TYPE full_name = RECORD
first_name : STRING[12];
initial : CHAR;
last_name : STRING[15];
END;
date = RECORD
day : BYTE;
month : BYTE;
year : INTEGER;
END;
person_id = ^person;
person = RECORD
name : full_name;
city : STRING[15];
state : STRING[2];
zipcode : STRING[5];
birthday : date;
END;
VAR friend : ARRAY[1..number_of_friends] OF person_id;
self,mother,father : person_id;
temp : person;
index : BYTE;
BEGIN (* main program *)
new(self); (* create the dynamic variable *)
self^.name.first_name := 'Charley';
self^.name.initial := 'Z';
self^.name.last_name := 'Brown';
WITH self^ DO
BEGIN
city := 'Anywhere';
state := 'CA';
zipcode := '97342';
birthday.day := 17;
WITH birthday DO
BEGIN
month := 7;
year := 1938;
END;
END; (* all data for self now defined *)
new(mother);
mother := self;
new(father);
father^ := mother^;
FOR index := 1 to number_of_friends DO
BEGIN
new(friend[index]);
friend[index]^ := mother^;
END;
temp := friend[27]^;
WRITE(temp.name.first_name,' ');
temp := friend[33]^;
WRITE(temp.name.initial,' ');
temp := father^;
WRITE(temp.name.last_name);
WRITELN;
dispose(self);
{ dispose(mother); } (* since mother is lost, it cannot
be disposed of *)
dispose(father);
FOR index := 1 TO number_of_friends DO
dispose(friend[index]);
END. (* of main program *)